<?php

class AFQueriable extends AFClass
{
	public function setQueryValue($name, $arguments)
	{
//		if(count($arguments))
//		{
			if(method_exists($this, $name.'Query'))
			{
				$methodName = $name.'Query';
				$result = $this->$methodName($arguments);
				if(!count($arguments))
				{
					return $result;
				}
			}
			else if(method_exists($this, 'queryHandler'))
			{
				$methodName = 'queryHandler';
				$result = $this->$methodName($name, $arguments);
				if(!count($arguments))
				{
					return $result;
				}
			}
			else
			{
				if(count($arguments))
				{
					$this->$name = $arguments[0];
				}
				else
				{
					return isset($this->$name) ? $this->$name : NULL;
				}
			}
			return $this;
//		}
//		else
//		{
//			return $this->name;
//		}
	}

	public function __call($name, $arguments)
	{
		return $this->setQueryValue($name, $arguments);
	}
}

?>
